ofsp2026 10_feature

Created time
Mar 28, 2026 05:27 AM
type
Post
status
Published
date
Mar 28, 2026
slug
ofsp2026 10_feature
summary
tags
ofsp2026
OpenFOAM
category
post
icon
password
Place
Last edited time
Mar 28, 2026 09:13 AM
📌
Important
访问 https://aerosand.cc 以获取最近更新。

0. 前言

上一篇的讨论已经实现了按照关键词读取参数值,但是我们也提到,string 类型并不满足实际应用。这一篇讨论将进一步探索自开发库。
本文主要讨论
了解使用模板类
增加字典注释和报错机制
编译运行 feature 项目

1. 项目准备

我们拷贝上个项目来建立本项目。
终端输入命令,通过拷贝来建立本项目
终端输入命令,清理并修改项目
此时的项目文件架构如下
终端输入命令,测试修改后的项目是否正确
结果显示项目正常。

2. 区分参数类型

当拿到 string 类型的返回值后,我们需要把返回值进一步转换成需要的数据类型。可以使用 template 进行开发。

2.1. 开发改进

类的声明 IOdictionary.H ,改进后内容如下
📌
Caution
这里需要注意,因为模板的编译机制不同,我们把类内模板函数的定义和声明放在了同一个文件,分开会导致主程序找不到函数的实例化对象。因为涉及到了更多的 C++ 知识,这里暂不深究,知道这么处理就可以了。
类的定义 IOdictionary.C,改进后内容如下
主源码 ofsp_10_feature.C ,改进后内容如下

2.2. 测试

字典文件 ofspProperties 内容如下(路径为 /ofsp/ofsp_10_io/ofspProperties
终端输入命令,编译运行
终端输出信息如下
可以看到读取功能正常,并且通过计算验证了读取的参数值的类型也是正确的。

3. 风格和报错机制

有了前文对字符串的处理的思路,我们可以进行自定义类的风格开发设计。

3.1. 开发设计思路

风格的设计参考 C++,每行末尾加 ; 表示语句结束,如下所示
注释的设计参考 C++ ,有以下两种形式
报错的设计简单考虑有以下几种情况
  1. 字典文件不存在或者文件名称错误,应该终止程序并输出对应的报错信息
  1. 字典中的关键词找不到,应该终止程序并输出对应的报错信息
  1. 字典中的关键词存在,但是没有给定值,应该终止程序并输出对应的报错信息

3.2. 开发改进

类的声明 IOdictionary.H ,进一步改进后内容如下
类的定义 IOdictionary.C,改进后内容如下
主源码保持不变。

3.3. 测试

修改本地字典 ofspProperties 内容如下
重新编译,读者可以测试字典文件可能出现的多种情况,可以发现结果依然满足设计要求。

4. 小结

在进一步开发特性的过程中,我们会意识到读取操作需要面对的数据类型还有很多,特别是 OpenFOAM 自己的类型。而且,需要处理的 OpenFOAM 输入文件格式和异常处理也有很多。这些功能特性毫无疑问需要更好的程序架构和更多的程序开发。
值的高兴的是,通过我们自己动手开发输入输出功能,相信读者现在对 OpenFOAM 的字典文件已经有了一定的概念。
本文完成讨论
了解使用模板类
增加字典注释和报错机制
编译运行 feature 项目
 

支持我们

📌
Tip
希望这里的分享可以对坚持、热爱又勇敢的您有所帮助。
如果这里的分享对您有帮助,您的评论或赞助将对本系列以及后续其他系列的更新、勘误、迭代和完善都有很大的意义,这些行动也会为后来的新同学的学习有很大的助益。
赞助打赏时的信息和留言将用于展示和感谢。
Alipay
Alipay
 
Copyright @ 2026 Aerosand
  • OpenFOAM 开发代码 :GPL v3
 
 
Loading...